/**
 * @addtogroup bsc_hj1239_chl_collect_if
 * bsc_hj1239_chl_collect_if
 * @{
 */
/**
 * @file        bsc_hj1239_chl_collect_if.h
 * @brief       XXXX
 * @note        XXXX
 * @author      靳普诏(puzhao.jin@hopechart.com)
 * @date        2023/10/20
 * @version     1.0

 * @par         修改日志
 * <table>
 * <tr><th>Date         <th>Version     <th>Author      <th> Description
 * <tr><td>2023/10/20   <td>1.0         <td>靳普诏       <td> 创建初始版本
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */

#ifndef _BSC_HJ1239_CHL_COLLECT_IF_H_
#define _BSC_HJ1239_CHL_COLLECT_IF_H_

#include "ofc/ofc_types.h"

#ifdef __cplusplus
extern "C"
{
#endif


enum TBsHj1239ChlCollectTypeEnumTag
{
    kBsHj1239ChlCollectTypeObdData = 1,   // 车载诊断系统（OBD）信息
    kBsHj1239ChlCollectTypeDpfScr = 2,    // 数据流信息：颗粒捕集器（DPF）和/或选择性催化还原（SCR）技术
    kBsHj1239ChlCollectTypeTwc = 3,       // 数据流信息：三元催化器（TWC），无 NOx 传感器
    kBsHj1239ChlCollectTypeHybrid = 4,    // 数据流信息：混动车附加
    kBsHj1239ChlCollectTypeTwcNOx = 5,    // 数据流信息：三元催化器，有 NOx 传感器
    kBsHj1239ChlCollectTypeFixData = 6,   // 补充数据流：非强制要求

    kBsHj1239ChlCollectType0x01 = 1 << kBsHj1239ChlCollectTypeObdData,
    kBsHj1239ChlCollectType0x02 = 1 << kBsHj1239ChlCollectTypeDpfScr,
    kBsHj1239ChlCollectType0x03 = 1 << kBsHj1239ChlCollectTypeTwc,
    kBsHj1239ChlCollectType0x04 = 1 << kBsHj1239ChlCollectTypeHybrid,
    kBsHj1239ChlCollectType0x05 = 1 << kBsHj1239ChlCollectTypeTwcNOx,
    kBsHj1239ChlCollectType0x80 = 1 << kBsHj1239ChlCollectTypeFixData,

    kBsHj1239ChlCollectMaskObdData = kBsHj1239ChlCollectType0x01,   // 车载诊断系统（OBD）信息
    kBsHj1239ChlCollectMaskDpfScr = kBsHj1239ChlCollectType0x02,    // 数据流信息：颗粒捕集器（DPF）和/或选择性催化还原（SCR）技术
    kBsHj1239ChlCollectMaskTwc = kBsHj1239ChlCollectType0x03,       // 数据流信息：三元催化器（TWC），无 NOx 传感器
    kBsHj1239ChlCollectMaskHybrid = kBsHj1239ChlCollectType0x04,    // 数据流信息：混动车附加
    kBsHj1239ChlCollectMaskTwcNOx = kBsHj1239ChlCollectType0x05,    // 数据流信息：三元催化器，有 NOx 传感器
    kBsHj1239ChlCollectMaskFixData = kBsHj1239ChlCollectType0x80,   // 补充数据流：非强制要求
};
typedef enum TBsHj1239ChlCollectTypeEnumTag TBsHj1239ChlCollectTypeEnum;



typedef struct IBsHj1239ChlCollectTag IBsHj1239ChlCollect;


/**
 * 执行采集
 * @param *self         接口指针
 * @param data_type_mask     采集数据流类型掩码
 * @param time          采集时间。UTC+8时间戳
 * @return >= 0         成功
 *         <  0         失败
 */
typedef Int32 (*IBsHj1239ChlCollectDoCollectMethod)(IBsHj1239ChlCollect *sender, UInt32 data_type_mask, UInt32 time_utc8);





struct IBsHj1239ChlCollectTag
{
    IBsHj1239ChlCollectDoCollectMethod          DoCollect;          ///< 采集命令
};



/**
 * 执行采集
 * @param *self         接口指针
 * @param data_type_mask     采集数据流类型掩码
 * @param time          采集时间。UTC+8时间戳
 * @return >= 0         成功
 *         <  0         失败
 */
Int32 IBsHj1239ChlCollectCollect(IBsHj1239ChlCollect *self, UInt32 data_type_mask, UInt32 time_utc8);




#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif  ///< _BSC_HJ1239_CHL_COLLECT_IF_H_

/**
 * @}  Generated on "2023-10-20 14:23:13" by the tool "gen_hq_file.py >> V20230509_1" 
 */
